草庐IT

sql server 复杂查询

全部标签

c# - Linq 缓慢具体化复杂查询

我经常发现,如果我在Linq查询中有太多连接(无论是使用EntityFramework还是NHibernate)和/或生成的匿名类的形状太复杂,Linq需要很长时间才能实现结果设置为对象。这是一个一般性问题,但这里有一个使用NHibernate的具体示例:varlibraryBookIdsWithShelfAndBookTagQuery=(fromshelfinsession.Query()joinsbttrefinsession.Query()onshelf.ShelfIdequalssbttref.ShelfIdjoinbookTaginsession.Query()onsbttr

c# - 查询 "Memory"的 LINQ

是否LINQ有办法在查询时“记住”它以前的查询结果吗?考虑以下情况:publicclassFoo{publicintId{get;set;}publicICollectionBars{get;set;}}publicclassBar{publicintId{get;set;}}现在,如果两个或更多Foo具有相同的Bar集合(无论顺序是什么),它们被认为是相似Foo.例子:foo1.Bars=newList(){bar1,bar2};foo2.Bars=newList(){bar2,bar1};foo3.Bars=newList(){bar3,bar1,bar2};在上面的例子中,foo

c# - EF 6 - 如何正确执行并行查询

创建报告时,我必须执行3个涉及相同上下文的不同实体的查询。因为它们很重,所以我决定使用.ToListAsync();让它们并行运行,但令我惊讶的是,我从中得到了一个异常(exception)...使用EF6并行执行查询的正确方法是什么?我应该手动启动新任务吗?编辑1代码基本上是using(varMyCtx=newMyCtx()){varr1=MyCtx.E1.Where(blablabla).ToListAsync();varr2=MyCtx.E2.Where(blebleble).ToListAsync();varr3=MyCtx.E3.Where(blebleble).ToList

c# - 将字符串解析为 LINQ 查询

将LINQ字符串解析为查询的最佳做法是什么方法?或者换句话说,哪种方法最适合转换:stringquery=@"fromelementinsourcewhereelement.Property=""param""selectelement";进入IEnumerable=fromelementinsourcewhereelement.Property="param"selectelement;假设source指的是IEnumerable或IQueryable在本地范围内。 最佳答案 从.NET4.6开始,您可以使用CSharpScrip

c# - 从集合创建 HashSet<int> 的最坏情况复杂度

我收藏了int我用来填充HashSet的值按照以下方式-varhashSet=newHashSet(myIEnumerable);假设迭代IEnumerable是O(n),创建HashSet的最坏情况复杂度是多少?以这种方式? 最佳答案 文档实际上指出:ThisconstructorisanO(n)operation,wherenisthenumberofelementsinthecollectionparameter.http://msdn.microsoft.com/en-us/library/bb301504.aspx

c# - 如何将使用 ROW_NUMBER() 的查询转换为 linq?

我的表由三列组成(sno、name、age)。我正在使用额外的列(行号)从数据库中检索此表,我使用了以下代码:select*from(selectROW_NUMBER()over(orderbySNoasc)asrowindex,SNo,Name,AgefromtblExample)asexamplewhererowindexbetween((pageindex*10)+1)and((pageindex+1)*10)请注意,pageindex是一个变量,它接受用户传递的一些整数值。我的数据库是SqlServer2008。我想使用Linq编写相同的查询。我该怎么做?

c# - 使用反射从原始类型确定复杂类型

我正在编写一个工具,我需要在其中反射(reflect)方法,如果方法的参数是复杂类型,那么我需要某些类型的操作,例如实例化它们等。现在我在Type变量中看到了IsPrimitive属性。但是,它将string和decimal显示为复杂类型,这在技术上是正确的。然而,我真正想要的是能够区分开发人员创建的类类型和系统定义的数据类型。有什么办法可以做到这一点吗? 最佳答案 decimal肯定是“复杂类型”;C#可能有一个关键字,但它不是CLI原语。String你可以用任何一种方式争论-它实际上是一个完全独立的类型(不确定大小等-唯一可以远

c# - 如何在 .Net 中可视化复杂图形?

我需要可视化图表。我不知道如何命名它(顺便说一句,如果你知道-如果你告诉我,我将不胜感激)。理想的图形元素是可点击的(这样当用户点击一个block时,我可以处理具有指定元素id的事件)但即使没有任何交互我也可以生存。我可能希望能够专注于特定节点并布局所有其他节点以从其角度查看。是否有适合此任务的任何组件?如果不是,我应该寻找什么来帮助我开发一种算法来绘制这样一个具有视觉舒适布局的图形?此图的实际性质很常见:每个block代表从2个操作数得出的结果。橙色圆圈是对2个操作数的引用,绿色圆圈是消费者的连接点。区分操作数的位置(左或右)可能很重要,例如,如果推导表示差分或除法的数学运算(在这种

c# - 分层 Entity Framework 查询异常

我正在尝试使用EntityFramework构建分层集合-请参阅下面的查询-给定公司中的每个成员都有一个父成员-但是在尝试执行此操作时我得到以下异常:System.NotSupportedException:Thetype'Member'appearsintwostructurallyincompatibleinitializationswithinasingleLINQtoEntitiesquery.Atypecanbeinitializedintwoplacesinthesamequery,butonlyifthesamepropertiesaresetinbothplacesan

c# - ServiceStack OrmLite Sql 查询日志记录

根据ServiceStackOrmlitedocumentation.我应该在Debug模式下生成sql查询。但是,我无法看到这些查询。简单代码privatestaticreadonlystringDataDirLoc=Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)+"\\TargetIntegration\\Test\\Debug\\";privatereadonlystringdbFileName=DataDirLoc+"Test.db3";[Test]publicvoidCan_Genera